package com.example.sqlitetest.Model;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by l on 2016/12/28.
 */

public class SQLiteDao extends SQLiteOpenHelper {

    //声明数据库名称
    private final static String DB_NAME="my.db";
    //声明版本号
    private final static int DB_VERSION = 1;
    //声明数据表名称
    private final static String TABLE_NAME = "info";
    //声明内容
    public final static String CONTENT = "content";
    //声明ID
    private final static String ID = "_id";
    //声明SQL对象
    SQLiteDatabase mDatabase = getWritableDatabase();

    //参数一：上下文
    //参数二：数据库名
    //参数三：数据库工厂
    //参数四：版本号
    //参数五：数据库帮助对象
    public SQLiteDao(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_NAME + "(" + ID  + " integer primary key autoincrement," + CONTENT + " text)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    //查询数据的方法
    public Cursor select() {
        Cursor cursor = mDatabase.query(TABLE_NAME, null, null, null, null, null, null);
        return cursor;
    }

    //插入数据库
    public long insert(String text) {
        ContentValues values = new ContentValues();
        values.put("content",text);
        //定义对象表示用户插如的数据
        //参数一：表名
        //参数二：当我们的value数值为空的时候我们数据插入失败的时候会默认给一个Null，继续
        //向里面插入数据
        long row = mDatabase.insert(TABLE_NAME,null,values);
        return row;
    }

    public void update(int _id, String text) {
        //将数据修改过后再插入到数据表中
        ContentValues values = new ContentValues();
        values.put("content",text);
        //修改的方法
        //参数一：表名
        //参数二：数据对象
        //参数三/si：条件语句
        mDatabase.update(TABLE_NAME,values, ID+"=?",new String[]{Integer.toString(_id)});
    }

    public void delete(int _id) {
        mDatabase.delete(TABLE_NAME,ID+"=?",new String[]{Integer.toString(_id)});
    }
}
